<div class="post_content markdown">
	<div class="toc-affix" style="width: 120px; height: 150px;">
        <div class="ant-affix">
            <ul class="toc demos-anchor">
                <li title="Moment.js的安装使用"><a href="#Moment.js的安装使用">Moment.js的安装使用</a></li>
                <li title="使用Moment.js解析日期时间"><a href="#使用Moment.js解析日期时间">使用Moment.js解析日期时间</a></li>
                <li title="初始化为当前时间"><a href="#初始化为当前时间">初始化为当前时间</a></li>
                <li title="使用一个String参数进行初始化"><a href="#使用一个String参数进行初始化">使用一个String参数进行初始化</a></li>
                <li title="使用String + Format参数进行初始化"><a href="#使用String + Format参数进行初始化">使用String + Format参数进行初始化</a></li>
                <li title="使用Special Formats特殊字符串进行初始化"><a href="#使用Special Formats特殊字符串进行初始化">使用Special Formats特殊字符串进行初始化</a></li>
                <li title="使用Object对象进行初始化"><a href="#使用Object对象进行初始化">使用Object对象进行初始化</a></li>
                <li title="使用Unix 偏移量（毫秒）进行初始化"><a href="#使用Unix 偏移量（毫秒）进行初始化">使用Unix 偏移量（毫秒）进行初始化</a></li>
                <li title="使用Unix 时间戳（秒）进行初始化"><a href="#使用Unix 时间戳（秒）进行初始化">使用Unix 时间戳（秒）进行初始化</a></li>
                <li title="使用JSDate对象进行初始化"><a href="#使用JSDate对象进行初始化">使用JSDate对象进行初始化</a></li>
                <li title="使用整数Array进行初始化"><a href="#使用整数Array进行初始化">使用整数Array进行初始化</a></li>
                <li title="Moment对象复制"><a href="#Moment对象复制">Moment对象复制</a></li>
                <li title="对UTC时间的支持"><a href="#对UTC时间的支持">对UTC时间的支持</a></li>
                <li title="使用parseZone转换时区"><a href="#使用parseZone转换时区">使用parseZone转换时区</a></li>
                <li title="有效性验证"><a href="#有效性验证">有效性验证</a></li>
                <li title="使用默认值"><a href="#使用默认值">使用默认值</a></li>
            </ul>
        </div>
    </div>
                            <p>
	<code>Moment.js</code>是一个JavaScript的日期、时间处理工具类，其对于JavaScript的日期时间处理功能非常强悍和全面。可以用在浏览器环境中使用，也可以在Node.js中。在<code>IE8</code>以上及其它浏览器的最新版本中都可以使用，具有良好的跨浏览器及跨系统的兼容性。本篇主要介绍<code>Moment.js</code>的安装使用与<code>Moment.js</code>日期时间解析功能。</p><ol class=" list-paddingleft-2"><li><p>
		<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#how-to-use"> <code>Moment.js</code>的安装使用</a> 
		</p></li><ul class=" list-paddingleft-2"><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#node"> 1.1 在<code>Node.js</code>中安装使用</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#browse"> 1.2 在<code>浏览器</code>中使用</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#bower"> 1.3 通过<code>Bower</code>安装</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#require-js"> 1.4 在<code>Require.js</code>中使用</a></p></li></ul><li><p>
		<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#moment-parse"> 使用<code>Moment.js</code>解析日期时间</a> 
		</p></li><ul class=" list-paddingleft-2"><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-init"> 2.1 初始化为当前时间</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-string"> 2.2 使用一个<code>String</code>参数进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-string-format"> 2.3 使用<code>String + Format</code>参数进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-string-formats"> 2.4 使用<code>String + Formats</code>参数进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-special-formats"> 2.5 使用<code>Special Formats</code>特殊字符串进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-object"> 2.6 使用<code>Object</code>对象进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-unix-offset"> 2.7 使用<code>Unix 偏移量（毫秒）</code>进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-unix-timestamp"> 2.8 使用<code>Unix 时间戳（秒）</code>进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-date"> 2.9 使用JS<code>Date</code>对象进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-array"> 2.10 使用整数<code>Array</code>进行初始化</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-clone"> 2.11 <code>Moment</code>对象复制</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-utc"> 2.12 对<code>UTC</code>时间的支持</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-parseZone"> 2.13 使用<code>parseZone</code>转换时区</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-validation"> 2.14 有效性验证</a></p></li><li><p>
				<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-defaults"> 2.15 使用默认值</a></p></li></ul></ol><p>
	<br></p><h3 id="how-to-use">
	1. <code>Moment.js</code>的安装使用</h3><p>
	<code>Moment.js</code>支持的安装方式非常多，你可以在<code>Node.js</code>中通过<code>npm</code>命令安装、可以<code>浏览器</code>中直接引用、可以通过包管理工具<a href="http://itbilu.com/nodejs/npm/VJBCLjGV.html" target="_blank">Bower</a>安装使用、也可以在<a href="http://itbilu.com/other/relate/Nyc6AnDV.html" target="_blank">Require.js</a>中配置使用……</p><h3 id="node">
	1.1 在<code>Node.js</code>中安装使用</h3><p>
	在<code>Node.js</code>中通过<code>npm</code>安装后，<code>require</code>引用即可。</p><pre>npm&nbsp;install&nbsp;moment</pre><pre>var&nbsp;moment&nbsp;=&nbsp;require('moment');
moment().format();</pre><p>
	<br></p><h3 id="browse">
	1.2 在<code>浏览器</code>中使用</h3><p>
	在<code>Node.js</code>中通过<code>npm</code>安装后，<code>require</code>引用即可。</p><pre>&lt;script&nbsp;src="moment.js"&gt;&lt;/script&gt;
&lt;script&gt;
&nbsp;&nbsp;&nbsp;&nbsp;moment().format();
&lt;/script&gt;</pre><p>
	<br></p><h3 id="bower">
	1.3 通过<code>Bower</code>安装</h3><p>
	<code>Bower</code>是一个前端包管理工具，通过<code>Bower</code>可以方便的安装管理<code>Moment.js</code>。</p><pre>bower&nbsp;install&nbsp;--save&nbsp;moment</pre><p>
	<br></p><h3 id="require-js">
	1.4 在<code>Require.js</code>中使用</h3><p>
	在<code>Require.js</code>中，你可以将<code>Moment.js</code>配置为一个全局对象：</p><pre>require.config({
&nbsp;&nbsp;&nbsp;&nbsp;paths:&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"moment":&nbsp;"path/to/moment",
&nbsp;&nbsp;&nbsp;&nbsp;}
});
define(["moment"],&nbsp;function&nbsp;(moment)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;moment().format();
});</pre><p>
	也可以按非全局的方式配置：</p><pre>require.config({
&nbsp;&nbsp;&nbsp;&nbsp;config:&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moment:&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;noGlobal:&nbsp;true
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
});</pre><p>
	<br></p><p>
	除上述应该环境外，<code>Moment.js</code>还可以在<a href="http://www.nuget.org/" target="_blank">NuGet</a>、<a href="http://spmjs.io/package/moment">spm</a>、<a href="https://atmospherejs.com/momentjs/moment">meteor</a>等环境中使用。</p><p>
	<br></p><h3 id="moment-parse">
	2. 使用<code>Moment.js</code>解析日期时间</h3><p>
	Moment.js对<code>Date</code>对象的扩展不是使用<code>Date.prototype</code>的方式，页是对<code>Date</code>对象创建一个包装对象。通过<code>moment()</code>方法可以获取这个包装对象，并且可以在调用时传入一个支持的输入参数。</p><p>
	<code>Moment</code>的原型方法通过<code>moment.fn</code>的方式暴露，你也可以通过这种方式添加自己的需要的方法。</p><p>
	<br></p><h4 id="parse-init">
	2.1 初始化为当前时间</h4><pre>moment();</pre><p>
	获取当前日期时间，使用<code>moment()</code>方法即可，无需传入任何参数：</p><pre>var&nbsp;now&nbsp;=&nbsp;moment();</pre><p>
	上面的方法等价于<code>moment(new Date())</code>。</p><p>
	<br></p><h4 id="parse-string">
	2.2 使用一个<code>String</code>参数进行初始化</h4><p>
	<code>moment()</code>方法可以通过一个字符串参数，初始化时间，使用格式如下：</p><pre>moment(String);</pre><p>
	传入一个字符串参数时，<code>moment()</code>会首先按<a href="http://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a>进行格式匹配，之后会调用<code>new Date(string)</code>构造函数</p><pre>var&nbsp;day&nbsp;=&nbsp;moment("1995-12-25");</pre><p>
	<strong>注意</strong>浏览器端支持的格式化类型比较有限，详细参考：<a href="http://dygraphs.com/date-formats.html" target="_blank">date-formats</a>。使用非ISO 8601格式进行初始化，可以使用<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-string-format">String + Format</a>参数的形式</p><p>
	<br></p><p>
	<strong>支持的ISO 8601字符串</strong> </p><p>
	ISO 8601字符串必须要有一个日期部分：</p><pre>2013-02-08&nbsp;&nbsp;#&nbsp;日历日期形式
2013-W06-5&nbsp;&nbsp;#&nbsp;周日期
2013-039&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;日期序列t</pre><p>
	时间部分也可以包含在格式化字符串中：</p><pre>2013-02-08T09&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;通过T分隔时间部分
2013-02-08&nbsp;09&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;通过空格分隔时间部分
2013-02-08&nbsp;09:30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;同时设置时和分钟
2013-02-08&nbsp;09:30:26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;同时设置时、分、秒
2013-02-08&nbsp;09:30:26.123&nbsp;&nbsp;#&nbsp;同时设置时、分、秒、毫秒
2013-02-08&nbsp;24:00:00.000&nbsp;&nbsp;#&nbsp;设置小时24，分、秒、毫秒为0</pre><p>
	所有设置日期的格式都可以同时设置时间：</p><pre>2013-02-08&nbsp;09
2013-W06-5&nbsp;09
2013-039&nbsp;09t</pre><p>
	设置时间部分时，可以同时包含和<code>UTC</code>时间的时差，像<code>+-HH:mm</code>、<code>+-HHmm</code>或<code>Z</code>：</p><pre>2013-02-08&nbsp;09+07:00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;+-HH:mm
2013-02-08&nbsp;09-0100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;+-HHmm
2013-02-08&nbsp;09Z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Z
2013-02-08&nbsp;09:30:26.123+07:00&nbsp;&nbsp;#&nbsp;+-HH:mm</pre><p>
	设置初始化字符串参数后，可以通过<code>isValid()</code>方法检测设置格式是否正确：</p><pre>moment("not&nbsp;a&nbsp;real&nbsp;date").isValid();&nbsp;//&nbsp;false</pre><p>
	<br></p><h4 id="parse-string-format">
	2.3 使用<code>String + Format</code>参数进行初始化</h4><pre>moment(String,&nbsp;String);
moment(String,&nbsp;String,&nbsp;String);
moment(String,&nbsp;String,&nbsp;Boolean);
moment(String,&nbsp;String,&nbsp;String,&nbsp;Boolean);</pre><p>
	如果已知输入的字符串字符串的格式，你可以这样将其转为一个<code>Moment</code>对象：</p><pre>moment("12-25-1995",&nbsp;"MM-DD-YYYY");</pre><p>
	以下两种设置形式会返回相同的值，因为转换器会忽略非文数字：</p><pre>moment("12-25-1995",&nbsp;"MM-DD-YYYY");
moment("12/25/1995",&nbsp;"MM-DD-YYYY");</pre><p>
	<br></p><p>
	<strong>年、月、日，标识符</strong> </p><table class="table table-bordered">
	<thead>
		<tr class="firstRow">
			<th>
				输入			</th>
			<th>
				示例			</th>
			<th>
				说明			</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>
				<code>YYYY</code> 
			</td>
			<td>
				<code>2014</code> 
			</td>
			<td>
				4或2位年			</td>
		</tr>
		<tr>
			<td>
				<code>YY</code> 
			</td>
			<td>
				<code>14</code> 
			</td>
			<td>
				2位年r			</td>
		</tr>
		<tr>
			<td>
				<code>Q</code> 
			</td>
			<td>
				<code>1..4</code> 
			</td>
			<td>
				季度。设置每季度的第一个月			</td>
		</tr>
		<tr>
			<td>
				<code>M MM</code> 
			</td>
			<td>
				<code>1..12</code> 
			</td>
			<td>
				表示月的数字			</td>
		</tr>
		<tr>
			<td>
				<code>MMM MMMM</code> 
			</td>
			<td>
				<code>Jan..December</code> 
			</td>
			<td>
				月份名			</td>
		</tr>
		<tr>
			<td>
				<code>D DD</code> 
			</td>
			<td>
				<code>1..31</code> 
			</td>
			<td>
				每月的第几天			</td>
		</tr>
		<tr>
			<td>
				<code>Do</code> 
			</td>
			<td>
				<code>1st..31st</code> 
			</td>
			<td>
				每月的第几天的序数			</td>
		</tr>
		<tr>
			<td>
				<code>DDD DDDD</code> 
			</td>
			<td>
				<code>1..365</code> 
			</td>
			<td>
				每年的第几天			</td>
		</tr>
		<tr>
			<td>
				<code>X</code> 
			</td>
			<td>
				<code>1410715640.579</code> 
			</td>
			<td>
				Unix时间戳			</td>
		</tr>
		<tr>
			<td>
				<code>x</code> 
			</td>
			<td>
				<code>1410715640579</code> 
			</td>
			<td>
				Unix时间戳（毫秒级）			</td>
		</tr>
	</tbody></table><p>
	<br></p><p>
	<strong>周年、周、周日，标识符</strong> </p><table class="table table-bordered">
	<thead>
		<tr class="firstRow">
			<th>
				输入			</th>
			<th>
				示例			</th>
			<th>
				说明			</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>
				<code>gggg</code> 
			</td>
			<td>
				<code>2014</code> 
			</td>
			<td>
				本地 4位周年			</td>
		</tr>
		<tr>
			<td>
				<code>gg</code> 
			</td>
			<td>
				<code>14</code> 
			</td>
			<td>
				本地 2位周年			</td>
		</tr>
		<tr>
			<td>
				<code>w ww</code> 
			</td>
			<td>
				<code>1..53</code> 
			</td>
			<td>
				本地 年中第几周			</td>
		</tr>
		<tr>
			<td>
				<code>e</code> 
			</td>
			<td>
				<code>1..7</code> 
			</td>
			<td>
				本地 一周中的第几天			</td>
		</tr>
		<tr>
			<td>
				<code>ddd dddd</code> 
			</td>
			<td>
				<code>Mon...Sunday</code> 
			</td>
			<td>
				本地星期名			</td>
		</tr>
		<tr>
			<td>
				<code>GGGG</code> 
			</td>
			<td>
				<code>2014</code> 
			</td>
			<td>
				ISO 4位周年			</td>
		</tr>
		<tr>
			<td>
				<code>GG</code> 
			</td>
			<td>
				<code>14</code> 
			</td>
			<td>
				ISO 2位周年			</td>
		</tr>
		<tr>
			<td>
				<code>W WW</code> 
			</td>
			<td>
				<code>1..53</code> 
			</td>
			<td>
				ISO 年中第几周			</td>
		</tr>
		<tr>
			<td>
				<code>E</code> 
			</td>
			<td>
				<code>1..7</code> 
			</td>
			<td>
				ISO 一周中的第几天			</td>
		</tr>
	</tbody></table><p>
	<br></p><p>
	<strong>时、分、秒、毫秒、时差，标识符</strong> </p><table class="table table-bordered">
	<thead>
		<tr class="firstRow">
			<th>
				输入			</th>
			<th>
				示例			</th>
			<th>
				说明			</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>
				<code>H HH</code> 
			</td>
			<td>
				<code>0..23</code> 
			</td>
			<td>
				24 小时制 时			</td>
		</tr>
		<tr>
			<td>
				<code>h hh</code> 
			</td>
			<td>
				<code>1..12</code> 
			</td>
			<td>
				12 小时制 时<code>a A</code>.			</td>
		</tr>
		<tr>
			<td>
				<code>a A</code> 
			</td>
			<td>
				<code>am pm</code> 
			</td>
			<td>
				上午和下午			</td>
		</tr>
		<tr>
			<td>
				<code>m mm</code> 
			</td>
			<td>
				<code>0..59</code> 
			</td>
			<td>
				分			</td>
		</tr>
		<tr>
			<td>
				<code>s ss</code> 
			</td>
			<td>
				<code>0..59</code> 
			</td>
			<td>
				秒			</td>
		</tr>
		<tr>
			<td>
				<code>S</code> 
			</td>
			<td>
				<code>0..9</code> 
			</td>
			<td>
				十分之一秒			</td>
		</tr>
		<tr>
			<td>
				<code>SS</code> 
			</td>
			<td>
				<code>0..99</code> 
			</td>
			<td>
				百分之一秒			</td>
		</tr>
		<tr>
			<td>
				<code>SSS</code> 
			</td>
			<td>
				<code>0..999</code> 
			</td>
			<td>
				千分之一秒（毫秒）			</td>
		</tr>
		<tr>
			<td>
				<code>SSSS</code> 
			</td>
			<td>
				<code>0000..9999</code> 
			</td>
			<td>
				微秒			</td>
		</tr>
		<tr>
			<td>
				<code>Z ZZ</code> 
			</td>
			<td>
				<code>+12:00</code> 
			</td>
			<td>
				与UTC时间的时差，用<code>+-HH:mm</code>、<code>+-HHmm</code>或<code>Z</code>表示			</td>
		</tr>
	</tbody></table><p>
	<br></p><p>
	如果不显式的标明时区，那么设置的将是本地时间：</p><pre>moment("2010-10-20&nbsp;4:30",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"YYYY-MM-DD&nbsp;HH:mm");&nbsp;&nbsp;&nbsp;//&nbsp;本地时间&nbsp;4:30
moment("2010-10-20&nbsp;4:30&nbsp;+0000",&nbsp;"YYYY-MM-DD&nbsp;HH:mm&nbsp;Z");&nbsp;//&nbsp;UTC时间&nbsp;4:30</pre><p>
	如果设置的时间为非法时间，使用<code>isValid()</code>方法验证，将返回false：</p><pre>moment("2010&nbsp;13",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"YYYY&nbsp;MM").isValid();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;false&nbsp;(不存在的月)
moment("2010&nbsp;11&nbsp;31",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"YYYY&nbsp;MM&nbsp;DD").isValid();&nbsp;&nbsp;//&nbsp;false&nbsp;(不存在的天)
moment("2010&nbsp;2&nbsp;29",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"YYYY&nbsp;MM&nbsp;DD").isValid();&nbsp;&nbsp;//&nbsp;false&nbsp;(不是润年)
moment("2010&nbsp;notamonth&nbsp;29",&nbsp;"YYYY&nbsp;MMM&nbsp;DD").isValid();&nbsp;//&nbsp;false&nbsp;(不存在的月名)</pre><p>
	自<code>2.0.0</code>版后，你要可以通过<code>moment()</code>方法的第三个参数或<code>moment.utc()</code>方法将其设置为UTC时间：</p><pre>moment('2012&nbsp;juillet',&nbsp;'YYYY&nbsp;MMM',&nbsp;'fr');
moment('2012&nbsp;July',&nbsp;&nbsp;&nbsp;&nbsp;'YYYY&nbsp;MMM',&nbsp;'en');</pre><p>
	<br></p><h4 id="parse-string-formats">
	2.4 使用<code>String + Formats</code>参数进行初始化</h4><pre>moment(String,&nbsp;String[],&nbsp;String,&nbsp;Boolean);</pre><p>
	与<a href="http://itbilu.com/nodejs/npm/VkCir3rge.html#parse-string-format/">String + Format</a>类似，<code>String + Formats</code>会在已知输入日期字符串的情况在，在指定1到多种格式之间进行匹配。</p><pre>moment("12-25-1995",&nbsp;["MM-DD-YYYY",&nbsp;"YYYY-MM-DD"]);</pre><p>
	当你指定的多个匹配格式时，Moment会按以下顺序匹配：</p><ul class=" list-paddingleft-2"><li><p>
		优先使用匹配较多的格式	</p></li><li><p>
		匹配度相同时，优先使用最先匹配到的格式	</p></li></ul><pre>moment("29-06-1995",&nbsp;["MM-DD-YYYY",&nbsp;"DD-MM",&nbsp;"DD-MM-YYYY"]);&nbsp;//&nbsp;使用最后一个格式
moment("05-06-1995",&nbsp;["MM-DD-YYYY",&nbsp;"DD-MM-YYYY"]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;使用第一个格式</pre><p>
	初始化时，可能也会指定本地时间和严格匹配参数：</p><pre>moment("29-06-1995",&nbsp;["MM-DD-YYYY",&nbsp;"DD-MM-YYYY"],&nbsp;'fr');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;指定&nbsp;'fr'&nbsp;本地时间
moment("29-06-1995",&nbsp;["MM-DD-YYYY",&nbsp;"DD-MM-YYYY"],&nbsp;true);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;指定严格匹配模式
moment("05-06-1995",&nbsp;["MM-DD-YYYY",&nbsp;"DD-MM-YYYY"],&nbsp;'fr',&nbsp;true);&nbsp;//&nbsp;指定&nbsp;'fr'&nbsp;本地时间和严格匹配模式</pre><p>
	<br></p><h4 id="parse-special-formats">
	2.5 使用<code>Special Formats</code>特殊字符串进行初始化</h4><pre>moment(String,&nbsp;moment.CUSTOM_FORMAT,&nbsp;[String],&nbsp;[Boolean]);
moment(String,&nbsp;[...,&nbsp;moment.ISO_8601,&nbsp;...],&nbsp;[String],&nbsp;[Boolean]);</pre><p>
	在指定格式化参数时，可以指定一个表示匹配格式的<code>Moment</code>枚举常量。<code>Moment</code>支持ISO-8601标准的时间格式，指定<code>moment.ISO_8601</code>后，<code>Moment</code>就会按ISO-8601标准格式进行时间初始化。</p><pre>moment("2010-01-01T05:06:07",&nbsp;moment.ISO_8601);
moment("2010-01-01T05:06:07",&nbsp;["YYYY",&nbsp;moment.ISO_8601]);</pre><p>
	<br></p><h4 id="parse-object">
	2.6 使用<code>Object</code>对象进行初始化</h4><pre>moment({unit:&nbsp;value,&nbsp;...});</pre><p>
	你可以使用表示时间单位的对象来创建<code>Moment</code>，如下：</p><pre>moment({&nbsp;hour:15,&nbsp;minute:10&nbsp;});
moment({&nbsp;y&nbsp;&nbsp;&nbsp;&nbsp;:2010,&nbsp;M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:3,&nbsp;d&nbsp;&nbsp;&nbsp;:5,&nbsp;h&nbsp;&nbsp;&nbsp;&nbsp;:15,&nbsp;m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:10,&nbsp;s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:3,&nbsp;ms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:123});
moment({&nbsp;year&nbsp;:2010,&nbsp;month&nbsp;:3,&nbsp;day&nbsp;:5,&nbsp;hour&nbsp;:15,&nbsp;minute&nbsp;:10,&nbsp;second&nbsp;:3,&nbsp;millisecond&nbsp;:123});
moment({&nbsp;years:2010,&nbsp;months:3,&nbsp;days:5,&nbsp;hours:15,&nbsp;minutes:10,&nbsp;seconds:3,&nbsp;milliseconds:123});
moment({&nbsp;years:2010,&nbsp;months:3,&nbsp;date:5,&nbsp;hours:15,&nbsp;minutes:10,&nbsp;seconds:3,&nbsp;milliseconds:123});</pre><p>
	<br></p><h4 id="parse-unix-offset">
	2.7 使用<code>Unix 偏移量（毫秒）</code>进行初始化</h4><pre>moment(Number);</pre><p>
	<code>Moment</code>支持使用一个表示<code>Unix 标准时间</code>的毫秒级的整数进行初始化（开始自：Jan 1 1970 12AM UTC），类似于<code>new Date(Number)</code>。</p><pre>moment(1318781876406);</pre><p>
	<br></p><h4 id="parse-unix-timestamp">
	2.8 使用<code>Unix 时间戳（秒）</code>进行初始化</h4><pre>moment.unix(Number)</pre><p>
	<code>Moment</code>还支持使用 Unix时间戳（<code>秒级 Unix 标准时间</code>）进行初始化，这实际是调用了<code>moment(timestamp * 1000)</code>方法。</p><pre>var&nbsp;day&nbsp;=&nbsp;moment.unix(1318781876);</pre><p>
	<br></p><h4 id="parse-date">
	2.9 使用JS<code>Date</code>对象进行初始化</h4><pre>moment(Date);</pre><p>
	你可以从一个已经存在的<a href="http://itbilu.com/javascript/js/N1caHviS.html" target="_blank">JavaScript Date</a>对象初始化<code>Moment</code>。</p><pre>var&nbsp;day&nbsp;=&nbsp;new&nbsp;Date(2011,&nbsp;9,&nbsp;16);
var&nbsp;dayWrapper&nbsp;=&nbsp;moment(day);</pre><p>
	<br></p><h4 id="parse-array">
	2.10 使用整数<code>Array</code>进行初始化</h4><pre>moment(Number[]);</pre><p>
	<code>Moment</code>还支持从一个整数数组初始化，该方法是<code>new Date()</code>的镜像方法：</p><pre>[year,&nbsp;month,&nbsp;day,&nbsp;hour,&nbsp;minute,&nbsp;second,&nbsp;millisecond]
moment([2010,&nbsp;1,&nbsp;14,&nbsp;15,&nbsp;25,&nbsp;50,&nbsp;125]);&nbsp;//&nbsp;February&nbsp;14th,&nbsp;3:25:50.125&nbsp;PM</pre><p>
	构造函数默认使用当前时区，如果需要UTC时间则调用<code>moment.utc(Number[])</code>方法：</p><pre>moment.utc([2010,&nbsp;1,&nbsp;14,&nbsp;15,&nbsp;25,&nbsp;50,&nbsp;125]);</pre><p>
	<br></p><h4 id="parse-clone">
	2.11 <code>Moment</code>对象复制</h4><pre>moment(Moment);</pre><p>
	<code>Moment</code>对象可以进行复制，你可显式或隐式的调用<code>moment()</code>方法进行复制。</p><pre>var&nbsp;a&nbsp;=&nbsp;moment([2012]);
var&nbsp;b&nbsp;=&nbsp;moment(a);
a.year(2000);
b.year();&nbsp;//&nbsp;2012</pre><p>
	或显示的调用<code>moment.clone()</code>方法进行复制：</p><pre>var&nbsp;a&nbsp;=&nbsp;moment([2012]);
var&nbsp;b&nbsp;=&nbsp;a.clone();
a.year(2000);
b.year();&nbsp;//&nbsp;2012</pre><p>
	<br></p><h4 id="parse-utc">
	2.12 对<code>UTC</code>时间的支持</h4><pre>moment.utc();
moment.utc(Number);
moment.utc(Number[]);
moment.utc(String);
moment.utc(String,&nbsp;String);
moment.utc(String,&nbsp;String[]);
moment.utc(String,&nbsp;String,&nbsp;String);
moment.utc(Moment);
moment.utc(Date);</pre><p>
	默认情况下，<code>Moment</code>使用本地时间进行转换和显示。如果要使用UTC标准时间进行转换和显示，需要使用<code>moment.utc()</code>方法代替<code>moment()</code>。这就是<code>Moment.js</code>的<code>UTC模式</code>。</p><p>
	在<code>UTC模式</code>下，所有显示时间的方法都会使用UTC时间代替本地时间。</p><pre>moment().format();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;2013-02-04T10:35:24-08:00
moment.utc().format();&nbsp;//&nbsp;2013-02-04T18:35:24+00:00</pre><p>
	在<code>UTC模式</code>下，所有<code>getters</code>和<code>setters</code>都会使用<code>Date.getUTC*</code>和<code>Date.setUTC*</code>方法代替<code>Date.get*</code>和<code>Date.set*</code>方法：</p><pre>moment.utc().seconds(30)&nbsp;===&nbsp;new&nbsp;Date().setUTCSeconds(30);
moment.utc().seconds()&nbsp;===&nbsp;new&nbsp;Date().getUTCSeconds();</pre><p>
	<strong>注意</strong>：<code>utc()</code>方法只会在显示上使用UTC时间，二者本质上还是相同的时间。</p><pre>var&nbsp;a&nbsp;=&nbsp;moment();
var&nbsp;b&nbsp;=&nbsp;moment.utc();
a.format();&nbsp;&nbsp;//&nbsp;2013-02-04T10:35:24-08:00
b.format();&nbsp;&nbsp;//&nbsp;2013-02-04T18:35:24+00:00
a.valueOf();&nbsp;//&nbsp;1360002924000
b.valueOf();&nbsp;//&nbsp;1360002924000</pre><p>
	任何使用<code>moment.utc()</code>方法创建的<code>Moment</code>对象，将会使用<code>UTC 模式</code>，而使用<code>moment()</code>方法创建的将不会。</p><pre>var&nbsp;a&nbsp;=&nbsp;moment.utc([2011,&nbsp;0,&nbsp;1,&nbsp;8]);
a.hours();&nbsp;//&nbsp;8&nbsp;UTC
a.local();
a.hours();&nbsp;//&nbsp;0&nbsp;PST</pre><p>
	<br></p><h4 id="parse-parseZone">
	2.13 使用<code>parseZone</code>转换时区</h4><pre>moment.parseZone(String)</pre><p>
	<code>Moment</code>默认使用本地时间，或使用<code>moment.utc()</code>方法初始化为UTC时间。当输入的时间字符串本身包含时区信息时，需要使用<code>parseZone()</code>方法进行时区设置。</p><pre>moment.parseZone("2013-01-01T00:00:00-13:00").zone();&nbsp;//&nbsp;780</pre><p>
	<code>moment.parseZone</code>相当于使用<code>moment.zone</code>进行时区转换：</p><pre>var&nbsp;s&nbsp;=&nbsp;"2013-01-01T00:00:00-13:00";
moment(s).zone(s);</pre><p>
	<strong>注意</strong>：这个方法只有在一个字符串参数时使用</p><p>
	<br></p><h4 id="parse-validation">
	2.14 有效性验证</h4><p>
	<code>Moment</code>使用比<code>Date</code>构造函数更严格的初始化规则：</p><pre>new&nbsp;Date(2013,&nbsp;25,&nbsp;14).toString();&nbsp;//&nbsp;"Sat&nbsp;Feb&nbsp;14&nbsp;2015&nbsp;00:00:00&nbsp;GMT-0500&nbsp;(EST)"
moment([2015,&nbsp;25,&nbsp;35]).format();&nbsp;&nbsp;&nbsp;//&nbsp;'Invalid&nbsp;date'</pre><p>
	你可以使用<code>moment.isValid</code>方法检测输入的初始化时间是否合法，该方法会返回一个表示是否有效的布尔值。如果想查看转换详细结果，可以使用<code>moment.parsingFlags</code>方法，该方法会返回一个包含以下值的对象：</p><ul class=" list-paddingleft-2"><li><p>
		<code>overflow</code>：是否有溢出，如：13th月、月中的第32天	</p></li><li><p>
		<code>invalidMonth</code>：是否有效的月名	</p></li><li><p>
		<code>empty</code>：转入的字符串是否不可转换，如：输入<code>moment('this is nonsense');</code>则为true	</p></li><li><p>
		<code>nullInput</code>：是否输入了空值	</p></li><li><p>
		<code>invalidFormat</code>：是否无效的输入格式	</p></li><li><p>
		<code>userInvalidated</code>：是否创建成功，相当于<code>moment.invalid()</code></p></li></ul><p>
	当转换失败时，可以调用<code>moment#invalidAt</code>方法，查看失败位置：</p><pre>var&nbsp;m&nbsp;=&nbsp;moment("2011-10-10T10:20:90");
m.isValid();&nbsp;//&nbsp;false
m.invalidAt();&nbsp;//&nbsp;5&nbsp;表示秒出错</pre><p>
	返回值含义如下：</p><ul class=" list-paddingleft-2"><li><p>
		0. 年	</p></li><li><p>
		1. 月	</p></li><li><p>
		2. 天	</p></li><li><p>
		3. 时	</p></li><li><p>
		4. 分	</p></li><li><p>
		5. 秒	</p></li><li><p>
		6. 毫秒	</p></li></ul><p>
	<br></p><h4 id="parse-defaults">
	2.15 使用默认值</h4><pre>moment("15",&nbsp;"hh")</pre><p>
	创建<code>Moment</code>时，可以只指定一些时间单位，其它的会使用当前时间的日、时、分、秒等。</p><p>
	使用当前时间</p><pre>moment();&nbsp;&nbsp;//&nbsp;current&nbsp;date&nbsp;and&nbsp;time</pre><p>
	还可以这样使用</p><pre>moment(5,&nbsp;"HH");&nbsp;&nbsp;//&nbsp;today,&nbsp;5:00:00.000
moment({hour:&nbsp;5});&nbsp;&nbsp;//&nbsp;today,&nbsp;5:00:00.000
moment({hour:&nbsp;5,&nbsp;minute:&nbsp;10});&nbsp;&nbsp;//&nbsp;today,&nbsp;5:10.00.000
moment({hour:&nbsp;5,&nbsp;minute:&nbsp;10,&nbsp;seconds:&nbsp;20});&nbsp;&nbsp;//&nbsp;today,&nbsp;5:10.20.000
moment({hour:&nbsp;5,&nbsp;minute:&nbsp;10,&nbsp;seconds:&nbsp;20,&nbsp;milliseconds:&nbsp;300});&nbsp;&nbsp;//&nbsp;today,&nbsp;5:10.20.300</pre><p>
	或这样使用</p><pre>moment(5,&nbsp;"DD");&nbsp;&nbsp;//&nbsp;本月的第5天
moment("4&nbsp;05:06:07",&nbsp;"DD&nbsp;hh:mm:ss");&nbsp;&nbsp;//&nbsp;本月的第4天，&nbsp;05:06:07.000</pre><p>
	或这样使用</p><pre>moment(3,&nbsp;"MM");&nbsp;&nbsp;//&nbsp;今年的第4个月&nbsp;(April)
moment("Apr&nbsp;4&nbsp;05:06:07",&nbsp;"MMM&nbsp;DD&nbsp;hh:mm:ss");&nbsp;&nbsp;//&nbsp;今年4月的第5天,&nbsp;05:06:07.000</pre><p><br></p>
                        </div>